package com.victor.pomelo.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.victor.pomelo.model.Menu;
import com.victor.pomelo.model.Resource;

/**
 * 
 * @author Victor 2015年5月1日
 */
public interface ResourceService {

	public Resource createResource(Resource resource);

	public Resource updateResource(Resource resource);

	public void deleteResource(Long resourceId);

	/**
	 * 查询单个资源
	 * 
	 * @param resourceId
	 * @return
	 */
	public Resource findById(Long resourceId);

	public List<Resource> findAll();

	/**
	 * 得到资源对应的权限字符串
	 * 
	 * @param resourceIds
	 * @return
	 */
	public Set<String> findPermissions(Set<Long> resourceIds);

	/**
	 * 根据用户权限得到菜单
	 * 
	 * @param permissions
	 * @return
	 */
	public List<Resource> findMenus(Set<String> permissions);

	/**
	 * 根据用户名称查询用户可使用的资源
	 * 
	 * @param permissions
	 * @return
	 */
	public Map<Long, Resource> findResources(Set<String> permissions);

	/**
	 * 根据用户权限读取系统主菜单
	 * 
	 * @return
	 */
	public List<Menu> findMainmenus(Set<String> permissions);

}
